// src/controllers/auth.ts  
import { Context } from "koa";  
const http = require('http')  
// 定义请求的 URL 和参数  
const url = 'http://apis.map.qq.com/ws/geocoder/v1'  
export default class GeoController {  
  
    static getGeoData = (location:any)=> { // 设置为静态方法  
  
        return new Promise((resolve, reject) => {  
            // 将参数拼接到 URL 中  
            const requestUrl = `${url}?location=${location}&key=JDUBZ-CRRRL-FBLPX-MHQJK-NI34T-AEBZQ&get_poi=1`  
            // console.log('requestUrl', requestUrl)  
            // 发送 GET 请求  
            http.get(requestUrl, (response: any) => {  
                let data = ''  
  
                // 监听响应数据的事件，将数据保存到变量中  
                response.on('data', (chunk: any) => {  
                    data += chunk  
                })  
  
                // 监听响应结束的事件，输出获取到的完整数据  
                response.on('end', () => {  
                    // console.log('end', data)  
                    resolve({ data: { code: 200, data: JSON.parse(data) } });  
                })  
            }).on('error', (error: any) => {  
                console.error(`请求遇到错误：${error.message}`)  
            })  
  
        })  
    }   
  // ...  
    public static async geocoder(ctx: Context) {  
        const { location } = ctx.request.query  
        const res: any = await GeoController.getGeoData(location); // 使用类名调用静态方法  
        ctx.body = res.data   
        // ctx.request.body.username  
        // console.log('ctx.11111', ctx.request.query);  
  }  
      
}